<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
	</head>
	<body>
		<script type="text/javascript">
			// 以数组 intervals 表示若干个区间的集合，其中单个区间为 intervals[i] = [starti, endi] 。
			// 请你合并所有重叠的区间，并返回一个不重叠的区间数组，该数组需恰好覆盖输入中的所有区间。
			
			// 解题思路:
			// 	1. 先对区间的左边进行升序排序
			// 	2. 然后对区间右边进行比较合并
			
			// var intervals = [[1,3],[2,6],[8,10],[15,18]]
			var intervals = [[1,4],[0,4]]
			
			/**
			 * @param {number[][]} intervals
			 * @return {number[][]}
			 */
			var merge = function(intervals) {
				
				if(intervals.length == 0) return []
				
				intervals.sort((a,b) => a[0] - b[0])
				let prev = intervals[0]
				
				var tempArr = []
				for (let i = 1; i < intervals.length; i++) {
					let cur = intervals[i]
					if (prev[1] >= cur[0]) { // 有重合
						prev[1] = Math.max(cur[1], prev[1])
					} else {  // 不重合 ，prev推入 tempArr数组
						tempArr.push(prev)
						prev = cur
					}
				}
				
				tempArr.push(prev)
				return tempArr
			};
			
			var arr = merge(intervals)
			console.log(arr);
			
		</script>
	</body>
</html>
